package com.qzsoft.system.modules.permission.role.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qzsoft.system.modules.permission.role.dto.RoleInfoDTO;
import com.qzsoft.system.repository.sys.entity.SysRoleEntity;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

/**
 * 角色管理(SysRole)表数据库访问层
 *
 * @author gbx
 * @since 2020-11-04 10:31:08
 */
@Mapper
@Repository
public interface SysRoleMapper extends BaseMapper<SysRoleEntity> {
    /**
     * 逻辑删除信息(更新逻辑删除字段)
     *
     * @param id      信息主键
     * @param date    更新时间
     * @param updater 更新者
     * @return 处理结果
     */
    int delIsUpdateById(@Param("id") Long id, @Param("date") Date date, @Param("updater") Long updater);

    /**
     * 获取用户的所有角色相关信息
     *
     * @param userId 用户id
     * @return 处理结果
     */
    List<RoleInfoDTO> getInfoByUserId(@Param("userId") Long userId);

    /**
     * 获取用户的在某应用系统下的所有角色相关信息
     *
     * @param userId 用户id
     * @param appId  应用系统编号
     * @return 处理结果
     */
    List<RoleInfoDTO> getInfoByUserIdAndAppId(@Param("userId") Long userId, @Param("appId") String appId);
}